<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Квадратни корен</title>
  </head>
  <body>

    <h1>Квадратни корен</h1>

    <p>Њутнов поступак за израчунавање квадратног корена је
    уобичајени поступак који користи сваки калкулатор
    због ефикасности тог поступка.</p>

  <form name="main" onsubmit="return update(this)">
    <p>a = <input name="a" value="2" /> <input type="submit"></p>
    <table border="2">
      <tr> <th>бр</th> <th>x</th> <th>y = a/x</th> <th>просек</th> </tr>
      <tr id="tr"><td align="right">.</td><td>.</td><td>.</td><td>.</td></tr>
    </table>
    <p>Провера: <output name="r"></output></p>
  </form>

  </body>
  <script>
//    document.normalize()
    var tr = document.getElementById('tr')
    tr.removeAttribute('id')

    function sqrt(a) {
      function iterate(x) {
        var y = a / x
        var p = (x + y) / 2
        var cl = tr.cloneNode(true)
        var td = tr.firstChild
        td.firstChild.data = ++i + '.'
        td = td.nextSibling
        td.firstChild.data = x
        td = td.nextSibling
        td.firstChild.data = y
        td = td.nextSibling
        td.firstChild.data = p
        tr.parentNode.appendChild(cl)
        tr = cl
        return Math.abs(x / y - 1) < 1e-13 || i > 99 ? p : iterate(p)
      }
      var i = 0
      return iterate(Math.max(a,1))
    }

    function update(frm) {
      var x = sqrt(Number(frm.a.value))
      frm.r.value = x + ' на квадрат је ' + x*x
      return false
    }
  </script>

</html>